<?php

/*!
 * \author Brice VICO
 * \file Utilisateur.php
 * \namespace Site\UtilisateurBundle\Entity
 * \class Utilisateur
 *
 * \brief Cette classe hérite de BaseUser du FOSUserBundle, elle est une entité de notre site web, représentant un utilisateur.
 */

namespace Site\UtilisateurBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Entity\User as BaseUser;

/**
 * Utilisateur
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Site\UtilisateurBundle\Entity\UtilisateurRepository")
 */
class Utilisateur extends BaseUser
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\OneToOne(targetEntity="Site\UtilisateurBundle\Entity\Etudiant", cascade={"remove", "persist"})
     * @ORM\JoinColumn(nullable=true)
     */
    protected $etudiant;

    /**
     * @var string
     *
     * @ORM\Column(name="nom", type="string", length=255)
     */
    protected $nom;

    /**
     * @var string
     *
     * @ORM\Column(name="prenom", type="string", length=255)
     */
    protected $prenom;

    /**
     * @var string
     *
     * @ORM\Column(name="type", type="string", length=1)
     */
    protected $type;

    public function __construct()
    {
        parent::__construct();
        $this->etudiant = null;
    }

    /**
     * @param Site\UtilisateurBundle\Entity\Etudiant $etudiant
     */
    public function setEtudiant(\Site\UtilisateurBundle\Entity\Etudiant $etudiant)
    {
        $this->etudiant = $etudiant;
    }

    /**
     * @return Site\UtilisateurBundle\Entity\Etudiant
     */
    public function getEtudiant()
    {
        return $this->etudiant;
    }

    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set nom
     *
     * @param string $nom
     * @return Utilisateur
     */
    public function setNom($nom)
    {
        $this->nom = $nom;

        return $this;
    }

    /**
     * Get nom
     *
     * @return string
     */
    public function getNom()
    {
        return $this->nom;
    }

    /**
     * Set prenom
     *
     * @param string $prenom
     * @return Utilisateur
     */
    public function setPrenom($prenom)
    {
        $this->prenom = $prenom;

        return $this;
    }

    /**
     * Get prenom
     *
     * @return string
     */
    public function getPrenom()
    {
        return $this->prenom;
    }

    /**
     * Set type
     *
     * @param string $type
     * @return Utilisateur
     */
    public function setType($type)
    {
        $this->type = $type;

        return $this;
    }

    /**
     * Get type
     *
     * @return string
     */
    public function getType()
    {
        return $this->type;
    }
}
